{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 范型(Generic)+集合(Map)的使用"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 集合例子\n",
    "**图示**\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "78\n",
      "76\n",
      "89\n",
      "88\n"
     ]
    }
   ],
   "source": [
    "public void test(){\n",
    "    ArrayList list = new ArrayList();\n",
    "    //需求：存放学生的成绩\n",
    "    list.add(78);\n",
    "    list.add(76);\n",
    "    list.add(89);\n",
    "    list.add(88);\n",
    "    //问题一：类型不安全\n",
    "//        list.add(\"Tom\");\n",
    "\n",
    "    for(Object score : list){\n",
    "        //问题二：强转时，可能出现ClassCastException\n",
    "        int stuScore = (Integer) score;\n",
    "\n",
    "        System.out.println(stuScore);\n",
    "\n",
    "    }\n",
    "    \n",
    "}\n",
    "\n",
    "test();"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 在集合中使用泛型例子1\n",
    "**图示**\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "78\n",
      "87\n",
      "99\n",
      "65\n"
     ]
    }
   ],
   "source": [
    "public void testGeneric_1(){\n",
    "   ArrayList<Integer> list =  new ArrayList<Integer>();\n",
    "\n",
    "    list.add(78);\n",
    "    list.add(87);\n",
    "    list.add(99);\n",
    "    list.add(65);\n",
    "    //编译时，就会进行类型检查，保证数据的安全\n",
    "//        list.add(\"Tom\");\n",
    "\n",
    "    //方式一：\n",
    "//        for(Integer score : list){\n",
    "//            //避免了强转操作\n",
    "//            int stuScore = score;\n",
    "//\n",
    "//            System.out.println(stuScore);\n",
    "//\n",
    "//        }\n",
    "\n",
    "    //方式二：\n",
    "    Iterator<Integer> iterator = list.iterator();\n",
    "    while(iterator.hasNext()){\n",
    "        int stuScore = iterator.next();\n",
    "        System.out.println(stuScore);\n",
    "    }\n",
    "\n",
    "}\n",
    "\n",
    "testGeneric_1();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 在集合中使用泛型例子2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tom----87\n",
      "Jerry----87\n",
      "Jack----67\n"
     ]
    }
   ],
   "source": [
    "//在集合中使用泛型的情况：以HashMap为例\n",
    "public void testGeneric_2(){\n",
    "//        Map<String,Integer> map = new HashMap<String,Integer>();\n",
    "    //jdk7新特性：类型推断\n",
    "    Map<String,Integer> map = new HashMap<>();\n",
    "\n",
    "    map.put(\"Tom\",87);\n",
    "    map.put(\"Jerry\",87);\n",
    "    map.put(\"Jack\",67);\n",
    "\n",
    "//        map.put(123,\"ABC\");\n",
    "    //泛型的嵌套\n",
    "    Set<Map.Entry<String,Integer>> entry = map.entrySet();\n",
    "    Iterator<Map.Entry<String, Integer>> iterator = entry.iterator();\n",
    "\n",
    "    while(iterator.hasNext()){\n",
    "        Map.Entry<String, Integer> e = iterator.next();\n",
    "        String key = e.getKey();\n",
    "        Integer value = e.getValue();\n",
    "        System.out.println(key + \"----\" + value);\n",
    "    }\n",
    "\n",
    "}\n",
    "\n",
    "testGeneric_2();"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Java",
   "language": "java",
   "name": "java"
  },
  "language_info": {
   "codemirror_mode": "java",
   "file_extension": ".jshell",
   "mimetype": "text/x-java-source",
   "name": "Java",
   "pygments_lexer": "java",
   "version": "11.0.8+10-post-Ubuntu-0ubuntu120.04"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
